package com.changzhi.service;

import com.changzhi.ldyl.model.dto.YearDto;
import com.changzhi.ldyl.model.vo.ExternalVo;
import com.changzhi.ldyl.model.vo.PageVo;
import com.changzhi.ldyl.model.vo.UserVo;
import com.changzhi.ldyl.model.vo.YearRankingVo;

import java.util.List;
import java.util.Map;

/**
 * @Description:
 * @author: 小落
 * @date: 2020年11月16日
 */
public interface YearService {

	/**
	 * 初始化主播十二强
	 */
	void initStartBy12();

	/**
	 * 处理mq礼物数据
	 * @param msg
	 */
	void doMqDataByUserGift(String msg);

	/**
	 * 处理mq pk结束数据
	 * @param msg
	 */
	void doMqDataByPkFinish(String msg);

	/**
	 * 初始化pk数据
	 */
	void initPkList();

	/**
	 * 手动初始化pk数据
	 */
	void updatePkList(String type, List<Map<String,Object>> paramsList);


	/**
	 * 排行榜
	 * @return
	 */
	Object getChannelRankings(YearDto yearDto);

	/**
	 * pk列表
	 * @param yearDto
	 * @return
	 */
	Object pkList(YearDto yearDto);

	/**
	 * 公会排行榜
	 */
	PageVo<Map<String,Object>> getExternalRankings(YearDto yearDto);

	/**
	 * 年度神豪
	 * @param yearDto
	 * @return
	 */
	Map<String,Object> getBossRankings(YearDto yearDto);

	/**
	 * 年度之星
	 * @param yearDto
	 * @return
	 */
	Object getStarRankings(YearDto yearDto);

	/**
	 * 获取房间是否上锁
	 * @param yearDto
	 * @return
	 */
	Map<String, Object> getChannelLockStatus(YearDto yearDto);

	/**
	 * 获取内存数据
	 */
	Map<String, Object> getMemoryData();

	/**
	 * 年度明厅前三名
	 * @return
	 */
	List<YearRankingVo> getTopChannelList();

	/**
	 * 主播晋级48强
	 */
	void starPromotionBy48();

	/**
	 * 主播晋级12强
	 */
	void starPromotionBy12();

	/**
	 * 年度之星前十名
	 * @param yearDto
	 * @return
	 */
	List<UserVo> topStarList(YearDto yearDto);

	/**
	 * 年度神豪前十名
	 * @param yearDto
	 * @return
	 */
	List<UserVo> topBossList(YearDto yearDto);

	/**
	 * 年度公会前三名
	 * @param yearDto
	 * @return
	 */
	List<ExternalVo> topExternalList(YearDto yearDto);
}
